<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 在const中,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。
        // 对于简单类型的数据(数值、字符串、布尔值)，值就保存在变量指向的那个内存地址，因此等同于常量。
        // 但对于复合类型的数据(主要是对象和数组)，变量指向的内存地址，保存的只是一个指向实际数据的指针
        // const只能保证这个指针是固定的(即总是指向另一个固定的地址)。

        // 基本数据类型无法重新赋值。
        // 引用类型(对象、数组...),可以更改内容。
        // (注:不能改的是栈)

        const a = [];
        a.push('过过过');//可执行 
        console.log(a);
        console.log(a.length); //1 
        a.length = 0;//可执行
        console.log(a.length); //0
        a =['冲冲冲'] //Assignment to constant variable.(分配给常量变量。) 
        console.log(a);
        //上面的代码中,常量a是一个数组,这个数组本身是可写的,但是如果将另一个数组赋值给a,就会报错。
    </script>
</body>
</html>